package com.ygqh.baby.service;

import com.ygqh.baby.ao.CheckStatus;
import com.ygqh.baby.ao.CommentTag;
import com.ygqh.baby.ao.QueryInfo;
import com.ygqh.baby.ao.ResultSet;
import com.ygqh.baby.model.YgProductCommentModel;
import com.ygqh.baby.po.YgProductComment;
import com.ygqh.baby.po.YgUser;

import java.util.Date;
import java.util.List;

public interface YgProductCommentService {

    List<YgProductComment> find();

    int findCount();

    YgProductComment findById(Long id);

    int deleteSoft(Long[] ids);

    int deleteSoft(Long id);

    int save(YgProductComment ygProductComment);

    int update(YgProductComment ygProductComment);

    int saveOrUpdate(YgProductComment ygProductComment);

    int updateBatchChechStatus(String checkBy, String checkStatus, Long[] ids);

    /**
     * 运营后台获取商品评论列表
     *
     * @param queryInfo
     * @param checkBy
     * @param productName
     * @param checkStatus
     * @param startDate
     * @param endDate
     * @param isUserComment 是否为用户自己评论（true:是、false：否）
     * @return
     */
    ResultSet<YgProductComment> searchForHouTai(QueryInfo queryInfo, String checkBy, String productName, CheckStatus checkStatus, Date startDate, Date endDate,
                                                Boolean isUserComment, String userName, Long orderId);

    /**
     * 提交商品评论
     *
     * @param orderId
     * @param userId
     * @param productId
     * @param skuId
     * @param skuId
     * @param content
     * @param imagesUrls
     * @param commentTag
     * @return
     */
    int commentOrderItem(Long orderId, Long userId, Long productId, Long skuId, String content, String imagesUrls, CommentTag[] commentTags,
                         Long couponDetailId);

    int commentOrderItem(Long orderId, YgUser user, Long productId, Long skuId, String content, String imagesUrls, CommentTag[] commentTags,
                         Long couponDetailId);

    int count(Long productId);

    /**
     * 运营后台回复商品评论
     *
     * @param commentId
     * @param replyContent
     * @param replyBy
     * @return
     */
    int replyProductComment(Long commentId, String replyContent, String replyBy);

    /**
     * 根据款式ID获取款式下的所有产品评论
     *
     * @param groupId
     * @return
     */
    int commentCount(Long groupId);

    List<YgProductCommentModel> findModelList(QueryInfo queryInfo, Long groupId, Long productId);

    /**
     * 查询当前分组下的商品评论
     *
     * @param groupId
     * @return int    返回类型
     * @throws
     * @Title: countByCurrentGroup
     * @author （guohao）
     * @date 2018年6月20日 下午2:51:26
     * @version V1.0
     */
    int countByCurrentGroup(Long groupId);

    List<YgProductCommentModel> findModelListByCurrentGroup(QueryInfo queryInfo, Long groupId);

    List<YgProductCommentModel> findModelListByProductCode(QueryInfo queryInfo, String productCode, boolean showAll);

    int countByProductCode(String productCode, boolean showAll);

}
